﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Chillis.CRM.Web.CRMService;
using Chillis.CRM.Web.Models.TipoPublicacion;
using Chillis.CRM.TransferObjects;

namespace Chillis.CRM.Web.Controllers
{
    public class TipoPublicacionController : Controller
    {
        CRMCServiceClient cliente = new CRMCServiceClient();

        [HttpGet]
        public ActionResult Index()
        {
            return View();
        }

        [HttpGet]
        public ActionResult Registrar()
        {
            return PartialView();
        }

        public ActionResult Actualizar(ModificacionModel model)
        {
            var tipoPublicacion = cliente.ObtenerTipoPublicacion(model.Id);
            model.Id = tipoPublicacion.IdTipoPublicacion;
            model.Descripcion = tipoPublicacion.Descripcion;
            cliente.Close();

            return PartialView(model);
        }

        [HttpPost]
        public JsonResult Listar()
        {
            var resultado = cliente.ListarTipoPublicacion();
            var retorno = Json(resultado);
            cliente.Close();

            return retorno;
        }

        [HttpPost]
        public ActionResult PostRegistrar(RegistroModel model)
        {
            var tipoPublicacion = new TipoPublicacion();
            tipoPublicacion.Descripcion = model.Descripcion;

            var resultado = cliente.RegistrarTipoPublicacion(tipoPublicacion);
            var retorno = Json(resultado);
            cliente.Close();

            return retorno;
        }

        [HttpPost]
        public ActionResult PostActualizar(ModificacionModel model)
        {
            var tipoPublicacion = new TipoPublicacion();
            tipoPublicacion.IdTipoPublicacion = model.Id;
            tipoPublicacion.Descripcion = model.Descripcion;

            var resultado = cliente.ActualizarTipoPublicacion(tipoPublicacion);
            var retorno = Json(resultado);
            cliente.Close();

            return retorno;
        }

        [HttpPost]
        public ActionResult PostEliminar(ModificacionModel model)
        {
            var resultado = cliente.EliminarTipoPublicacion(model.Id);
            var retorno = Json(resultado);
            cliente.Close();

            return retorno;
        }

    }
}
